home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / Ant Movie Catalog 3.5.0.2 / amc_install.exe / {app} / Scripts / Filmposter-archiv (DE).ifs < prev    next >
Text File  |  2005-03-13  |  4KB  |  140 lines

  1. (***************************************************
  2.  
  3. Ant Movie Catalog importation script
  4. www.antp.be/software/moviecatalog/
  5.  
  6. [Infos]
  7. Authors=Nik0
  8. Title=Filmposter-archiv.de
  9. Description=Bild von Filmposter-archiv.de
  10. Site=Filmposter-archiv.de
  11. Language=DE
  12. Version=
  13. Requires=3.5.0
  14. Comments=
  15. License=This program is free software; you can redistribute it and/or modify it under the  terms of the GNU General Public License as published by the Free Software Foundation;  either version 2 of the License, or (at your option) any later version. |
  16. GetInfo=1
  17.  
  18. [Options]
  19.  
  20. ***************************************************)
  21.  
  22. program filmposterarchiv;
  23. var
  24.   MovieName: string;
  25.  
  26. const
  27.   fp_Server = 'http://www.filmposter-archiv.de/';
  28.  
  29. function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
  30. var
  31.   i: Integer;
  32. begin
  33.   result := -1;
  34.   if StartAt < 0 then
  35.     StartAt := 0;
  36.   for i := StartAt to List.Count-1 do
  37.     if Pos(Pattern, List.GetString(i)) <> 0 then
  38.     begin
  39.       result := i;
  40.       Break;
  41.     end;
  42. end;
  43.  
  44. // wenn mehrere Ergebnisse
  45. procedure AnalyzePage(Address: string);
  46. var
  47.   Page: TStringList;
  48.   LineNr: Integer;
  49. begin
  50.   Page := TStringList.Create;
  51.   Page.Text := GetPage(Address);
  52.   if pos('<TITLE>Filmposter-Archiv - Filmposter-Suche', Page.Text) = 0 then
  53.   begin
  54.     AnalyzeMoviePage(Page)
  55.   end else
  56.   begin
  57.     PickTreeClear;
  58.     LineNr := 0;
  59.     LineNr := FindLine('<OL>', Page, LineNr);
  60.     if LineNr > -1 then
  61.     begin
  62.       PickTreeAdd('Suche nach "' + MovieName + '" ergab mehrere Treffer:', '');
  63.       AddMoviesTitles(Page, LineNr);
  64.     end;
  65.     if PickTreeExec(Address) then
  66.       AnalyzePage(Address);
  67.   end;
  68.   Page.Free;
  69. end;
  70.  
  71. //wenn Filmseite
  72. procedure AnalyzeMoviePage(Page: TStringList);
  73. var
  74.   Line, Value, Value2, FullValue: string;
  75.   LineNr: Integer;
  76.   BeginPos, EndPos: Integer;
  77. begin
  78.  
  79.   // Picture
  80.   LineNr := FindLine('<IMG SRC="../p_', Page, 0);
  81.   if LineNr > -1 then
  82.   begin
  83.     Line := Page.GetString(LineNr);
  84.     BeginPos := pos('SRC="', Line) + 4;
  85.     Delete(Line, 1, BeginPos);
  86.     EndPos := pos('"', Line);
  87.     Value := copy(Line, 1, EndPos - 1);
  88.     GetPicture(Value); // False = do not store picture externally ; store it in the catalog file
  89.   end;
  90.   //DisplayResults;
  91. end;
  92.  
  93. procedure AddMoviesTitles(Page: TStringList; var LineNr: Integer);
  94. var
  95.   Line: string;
  96.   MovieTitle, MovieAddress, PictureKiloByte, AdditionalInfo: string;
  97.   StartPos: Integer;
  98. begin
  99.   repeat
  100.     LineNr := LineNr + 1;
  101.     Line := Page.GetString(LineNr);
  102. //    ShowMessage(Line);
  103.     StartPos := pos('<LI>', Line);
  104.     if StartPos > 0 then
  105.     begin
  106.       StartPos := StartPos + 4;
  107.       MovieTitle := copy(Line, StartPos, pos(' <A', Line) - StartPos);
  108.       HTMLDecode(Movietitle);
  109.       HTMLRemoveTags(Movietitle);
  110.      
  111.       StartPos := pos(' kByte', Line) - 3;
  112.       PictureKiloByte := copy(Line, StartPos, pos(' kByte', Line) - StartPos);
  113.       MovieTitle := MovieTitle + ' | ' + Trim(PictureKiloByte) + ' kByte';
  114.  
  115.       StartPos := pos('[', Line) + 1;
  116.       AdditionalInfo := copy(Line, StartPos, pos(']', Line) - StartPos);
  117.       if AdditionalInfo <> '' then
  118.         MovieTitle := MovieTitle + ' | [' + AdditionalInfo + ']';
  119.       StartPos := pos('_gr.php3?id=', Line) + 12;
  120.       MovieAddress := copy(Line, StartPos, pos('" TARGET="', Line) - StartPos);
  121.       PickTreeAdd(MovieTitle, fp_Server + 'html/anzeige_gr.php3?id=' + MovieAddress);
  122.     end;
  123.   until pos('</OL>', Line) > 0;
  124. end;
  125.  
  126. begin
  127.   if CheckVersion(3,5,0) then
  128.   begin
  129.     MovieName := GetField(fieldOriginalTitle);
  130.     if MovieName = '' then
  131.       MovieName := GetField(fieldTranslatedTitle);
  132.     if Input('Filmposter-Archiv.de', 'Geben Sie den Namen den Films ein:', MovieName) then
  133.     begin
  134.       AnalyzePage( fp_Server + 'html/suche.php3?sent=1&language=german&filmtitel='+UrlEncode(MovieName));
  135.     end;
  136.   end else
  137.   ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');
  138. end.
  139.  
  140.